Log In  
BBS > Lexaloffle Community Superblog
This is a combined feed of all Lexaloffle user blogs. For Lexaloffle-related news, see @zep's blog.

All | Following | PICO-8 | Voxatron | General | Off-site
[ :: Read More :: ]

Cart #rfidezaro-0 | 2024-04-22 | Code ▽ | Embed ▽ | No License
1

P#147120 2024-04-22 16:23
[ :: Read More :: ]

I usually keep all my carts in a specific folder in Picotron, but it's annoying having to cd into that folder every time I want to load a cart, or type the whole path out. I'd rather just be able to load carts from that folder from anywhere in the filesystem.

So, I made loadcart. It's like load (and even uses load to do the actual loading), but you can run it from anywhere and it'll always load from a folder you specify. (It will default to /desktop if you don't set a folder.)

Let's say /desktop/carts is where you store all your carts. You'd run loadcart -d /desktop/carts at some point to set loadcart's saved folder. Now, from that points on, from anywhere in your filesystem, you can type loadcart mycart and it would be the same as running load /desktop/carts/mycart.p64.

Here's the contents of the .lua file. Just save it to /appdata/system/util/loadcart.lua. When you run it with the -d switch, the saved folder will be set in /appdata/loadcart.pod.

--[[
    For loading carts from a specific
    saved folder.
]]

function print_usage()
    print("\f6usage:\t\tloadcart filename\n\t\t\t\tcan be file or directory\n")
    print("\f6\t\t\tloadcart -d directory_name\n\t\t\t\tsets carts directory (defaults to \"/desktop\")\n")
    if (fstat("/appdata/loadcart.pod")) then
        local meta = fetch_metadata("/appdata/loadcart.pod")
        if (fstat(meta.dir) == "folder") then
            print("\f6current: "..meta.dir)
        else
            print("\f6current: /desktop")
        end
    else
        print("\f6current: /desktop")
    end
end

--show help
local e = env()
local argv = e.argv
if (#argv < 1 or #argv > 2) then
    print_usage()
    exit(1)
end

--load cart based on settings or default to /desktop
if (#argv == 1) then
    if (argv[1] == "-d") print_usage() exit(1)

    local dir = "/desktop"
    if (fstat("/appdata/loadcart.pod") == "file") then
        local meta = fetch_metadata("/appdata/loadcart.pod")
        if (meta.dir and fstat(meta.dir) == "folder") then
            dir = meta.dir
        else
            print("\f6invalid directory setting, defaulting to /desktop")
        end
    end
    cd(dir)
    create_process("/system/util/load.lua",
        {
            print_to_proc_id = e.print_to_proc_id,
            argv = {fullpath(argv[1])}
        }
    )
    exit(0)

elseif (#argv == 2) then
    cd(e.path)
    if (argv[1] == "-d") then
        local directory = fullpath(argv[2])
        if (fstat(directory) == "folder") then
            store("/appdata/loadcart.pod","",{title="loadcart utility settings",dir=directory})
            print("\f6loadcart set to: "..directory)
            exit(0)
        else
            print("invalid directory")
            exit(1)
        end
    else
        print_usage()
        exit(1)
    end
end
P#147116 2024-04-22 15:57
[ :: Read More :: ]

Cart #ji-1 | 2024-05-03 | Embed ▽ | License: CC4-BY-NC-SA
5

From the moment I saw tuning as a parameter in the synth doc,
I knew I had to get just intonation into Picotron.
So I did.
There is code in the cart to copy into your cart, with instructions
on how to call the function with different musical keys (including a
dynamic key that changes according to channel 0!)
The cartridge includes a song I composed ages ago, which you are
welcome to use for any project you might like. :)

v1.1 Okay, so, the effect I achieved before was very close to just intonation but was not just intonation. I've since achieved true just intonation (you will probably not be able to tell the difference but the math is extra good now, I promise) and this updated cart reflects that.

P#147110 2024-04-22 14:39 ( Edited 2024-05-03 18:31)
[ :: Read More :: ]

Hi all,

Just as PowKiddy RGB30 is the perfect handheld for PICO-8, I was wondering which handheld could y'all recommend to run Picotron, including its desktop and the entire development experience. I mean a device that has an option to connect a Bluetooth keyboard & mouse. Thinking about some "recreational coding" gear :-)

P#147102 2024-04-22 10:33 ( Edited 2024-04-22 10:34)
[ :: Read More :: ]

Hey guys!

It's been more than 2 years since I last posted on here. I never really thanked all the people for playing DUNGEON so I'd just like to express my gratitude! I'm typically more active with responding to comments on my itch.io page because more of my games are there.

Also, I never would've imagined DUNGEON would get featured on the front page! Definitely made me smile, so thanks to the pico8 team for putting it there.

I'm shocked people are still commenting on the game even as recent as a few weeks ago, so it convinced me to just make this blog post to try to reach out to the fans that are still here 2 years later. For years I've wanted to do an update to the game where I fix all the bugs and stuff, because believe me I'm aware of the bugs...

Some of them are just dumb mistakes, like how one of the death-screen hints tell you the shop is at level 12 when its really at level 8.

Others are just bad decisions, like making it so that spiders can't be jumped on. Don't know why I did that. Or calling the game's levels 'procedurally generated'. I think I didn't understand what that word meant at all lol.

And YES... I know about the wall jumping. Like 1/3 of the comments mention it lol. I know it sucks. But to be totally honest, I've spent countless hours trying to come up with something better and I can't. Whenever I try to ask a playtester how to fix it, they either say they've gotten too used to it for it to change or just to "make it work like this other game". Which isn't very helpful to me.

Anyhow, I thought I could publish the source code of the game since somebody recently asked for it. But just be warned, it's not remotely organized or thought-out, it's mostly just full of hacky code lol. Every time I look back at it I try to optimize it again but then I realize it's probably not worth it. Which is probably why I never bothered to make a big update fixing any of the bugs. I think I can just accept the way the game is. Plus I've mostly just moved on.

Source code here!

Sequel Idea?

Finally, I thought I could share some gifs of a sequel I had in mind for a while called "TOWER!". Where instead of navigating a dungeon you're constantly traveling upwards a tower (as the name might suggest) to save a stuck kitten!

I wanted to make a platformer like DUNGEON but with totally new aspects and gameplay features, possibly the most ambitious being 5 different selectable characters! You have the knight from the previous game, a new ninja, the shopkeeper (who has a large rifle), a plain-jane skeleton, and the princess!

The main 'gimmick' was that every level in the tower loops horizontally. Like you're just circumnavigating the tower. Unfortunately a lot of people said the looping effect was kind of disorienting and I tend to agree. But here are some gifs I made while developing the 'loop' feature, as well as some cool stuff with slope-tiles!

The ninja was almost sort of like the 'sonic' to the knight's 'mario'. Mostly built on ramping up speed and could scale walls for a short distance. The shopkeeper was slow and tanky but had a large gun that could be used for advanced movement (like the gif shows except not that crazy). The skeleton was supposed to be very durable and the princess was... never really that developed gameplay-wise O_O.

If you wanna play a little demo I made of the shopkeeper's ability, then follow the link down below! You need to collect 5 coins to fire 1 bullet, and press down+shoot in order to 'double jump' as the shopkeeper.
https://deklaswas.itch.io/tower

Other than that, I don't really have any plans of finishing the sequel. But I just wanted to share some ideas I had.

Well, that's everything I wanted to say. Again, thanks everyone for playing... Goodbye!

P#139922 2024-04-22 01:46 ( Edited 2024-04-22 01:49)
[ :: Read More :: ]

Cart #picojoe-0 | 2024-04-22 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

Controls:

Movement

Shooting

Interactions

About :

Pico joe is a remake of the classic video game Communist joe created to celebrate its 5 year anniversary a bit later than I would have liked. The story is a retelling / retexturizing of the original, following the protagonist joe through the events of the first game in a new light chasing after an ever better bottle of sweet, sweet vodka, destroying planet after planet collecting bounty after bounty and building up a stack of cash bigger than the Eiffel tower just to endorse your habits, you must fight your way to the top and ensure the universes safety whilst your there, good luck and what not.

Other :

If you find any issues please leave a comment or something like that.

P#147088 2024-04-22 01:40 ( Edited 2024-04-22 01:42)
[ :: Read More :: ]

Cart #drydock_scsv-0 | 2024-04-21 | Embed ▽ | License: CC4-BY-NC-SA
11

Here's a screensaver I made using the 3d assets from my current project. Some of the ships are a bit scuffed if you look too closely.

P#147080 2024-04-21 21:34
[ :: Read More :: ]

I'm trying to run a /system/util command from my own custom /appdata/system/util command, but I can't seem to get the output from the /system/util to show up when I run it.

For example, let's take a dumb example and pretend I want a custom command called sys_ls to list the contents of the system folder. I would think my /appdata/system/util/sys_ls.lua would look like this:

create_process("/system/util/ls.lua", {
    argv = {"/system"}
})

And then running sys_ls should spit out the same output as if I ran ls /system. But it doesn't. Instead it outputs nothing at all.

Any idea how to get the called command's output to actually display in terminal along with any other output from a custom command?

P#147075 2024-04-21 19:37 ( Edited 2024-04-22 15:24)
[ :: Read More :: ]

hi! when i use lua i usually use a library that prevents me from accidentally using/setting globals that aren't already defined, in order to cut down on typos. i've collected a small whitelist of globals that need to be available for picotron. i noticed in terminal.lua there's a comment saying it's not supposed to set any globals, so i thought i'd report them in case they should be fixed.

here's what i have so far in my whitelist:

-- terminal.lua
cproj_draw
cproj_update
_
_is_terminal_command
k
res
-- gui.lua
drag_t

and here's the full script i'm using to protect globals in case it's helpful:

-- if you're using include(), include this after including everything else,
-- since most included modules will need to assign global variables on load

-- these globals are needed by picotron
_init = _init or false
_draw = _draw or false
_update = _update or false
-- these are used by the picotron terminal
cproj_draw = cproj_draw or false
cproj_update = cproj_update or false
_ = _ or false
_is_terminal_command = _is_terminal_command or false
k = k or false
res = res or false
-- gui needs these
drag_t = drag_t or false

local function unknown_variable (t, k)
  error (debug.traceback ('unknown variable ' .. tostring (k), 2))
end

setmetatable (_G, {
  __index = unknown_variable,
  __newindex = unknown_variable,
})

it's probably a good idea not to use it in finished carts because then changes to picotron might break them

P#147073 2024-04-21 17:21 ( Edited 2024-04-21 17:25)
[ :: Read More :: ]

Due to how tabs are saved in the .p8 file format, they can cause overflows into the sprite sheet. Each tab is saved as 6 characters in the .p8 file. However, those are not counted as part of the character limit until the cart is run or saved. If you have a cart that has multiple tabs and is at or just below the character limit, trying to run or save the cart will cause part of the code to overflow into the sprite sheet before giving an error, either "**** save failed ****" when saving or "program exceeds char limit" when running. In testing I've also had Pico-8 completely crash when trying to run a cart whose tabs push it over the character limit, but I was unable to replicate this.

(pico-8 version 0.2.6b)

The best way to solve this in my eyes, is to have each added tab of code add 6 to the character count in the code editor. That way, in the same way it's impossible to type over the character limit, it'd also be impossible to have tabs push over the character limit and overflow into the sprite sheet.

Thank you!

P#147068 2024-04-21 16:59
[ :: Read More :: ]

Please fix

P#147064 2024-04-21 13:45
[ :: Read More :: ]

Hi, i have come across pico 8 recently and messed around with the edu version. But today i remembered that like 3 years ago i bougt the full thing, i still got all of the files (i found them on my laptop) and it works on my new pc. But i wanted to run pico 8 games on my miyoo mini + (this little linux handheld). There is an emulator for it but its not the best in quality. Oh, and i created this account now becasue i didin't have one, there is no emails from lexaloffle on any of my gmail accounts with the purchase code or something like that. Can anyone help?

P#147059 2024-04-21 11:57
[ :: Read More :: ]

Cart #turiyotuke-0 | 2024-04-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

About:

This is a small demo for a platformer / speedrun game. This started out as some introductory practice for game dev, but it ended up turning into a whole level. While very unfinished (there's not even music yet!) it's in a playable enough state that I've found it pretty fun to speedrun. Feedback is very much appreciated!

Goal:

There's a finish line at the bottom of the stage; try and reach it as fast as possible! There are doors on the way down that need keys to pass, so try not to miss them as you make you way around. Remember, if you want a fresh start, you can always go back to the beginning by holding the Down key for a few seconds.

Controls:

X - Jump
Z - Slam / Spin
Up - Cancel Spin
Hold Down - Reset Game

While in the air, press Z to quickly spin out of control and slam into the ground. If Up is pressed while in this state, you will pop out and regain control.
(If you want to pop without slamming, you can just hold up before pressing Z - this won't perform the slam, but you'll still get an extra jump!)

If grounded, you can hold the slam button before jumping to fly up in an arc, spinning as if you had slammed from the air - this allows you to gain some extra height by popping out of the spinning state.

When landing while spinning, you can jump again to propel yourself forward! (This is your best way of getting through the level quickly!)

P#147039 2024-04-21 00:52
[ :: Read More :: ]

Cart #conveyor-2 | 2024-04-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
12

This is my first ever Pico-8 game!
In Conveyor, you play as a little robot that cannot move except for clinging to the conveyor belts above or below you.
Avoid the obstacles, hang on, and persevere!

Controls:
UP - cling to belt
DOWN - sit on belt
X - restart level
Z - begin game

There are options in the menu to mute the music and sfx.

I developed this game in part on my twitch stream!
Lately we've been doing a bit of stumbling around in Picotron, come hang out!

Zeflyn on Twitch!

Thanks for playing!

UPDATE #conveyor-2 : Fixed bug that allowed for infinite respawns on final game screen.

P#147044 2024-04-20 23:46 ( Edited 2024-04-29 17:19)
[ :: Read More :: ]

I've got a Raspberry Pi 400 that I've done some Pico-8 stuff on.

Does anyone know if there is a plan to release a binary for Raspberry? Picotron feels like the perfect match with the Rapsberry Pi 400.

P#147034 2024-04-20 20:07
[ :: Read More :: ]

Cart #charactron-1 | 2024-04-21 | Embed ▽ | License: CC4-BY-NC-SA
10

What is this tool?

This project was done for Picotron Game Jam (March 17th 2024 to April 20th 2024).
(Link to the game jam)

My plan was to do a character maker, something similar to what you can find on Picrew but for Picotron.

What can I do with this?

Everyone can use this avatar maker to make their own characters for any of their game projects (RPG or visual novel I guess?), mostly for Picotron. You can change the sprite, edit the character... The only constraint is to give a link or at least name this tool somewhere.

My ultimate goal is that people can reuse the cart and change the sprite sheet to create their own character maker. Currently, everything is a mess, so it's not really easy to change things with this tool. But I will try to make it as easy as possible in the future!

What's next?

I want to add some things that I did not have time for during the jam. Here is a list :

  • More sprites
  • Adaptable sprites (Right now, if you select certain ears or body type, you have white spots or akward spacing. I want to prevent this from happening.)
  • Code easier to read and more efficient
  • Export as a Picotron sprite (I have currently no clue about how to do it... If you know, tell me!)
  • Save slots in the cart (I also have no clue, please explain if you know!)

DEVLOG

This game jam was enjoyable, even though I discovered how bad of a dev I am. Picotron is quite new, there is almost no documentation... So it was a struggle for me. I thought doing a doll maker was an easy project. It was not. Thanks to really kind people on Picotron's Discord, I finished everything I wanted to implement before the end of the jam. I had a rough time managing my time too, between my work, my family and my friends... But I'm so happy to have almost finished this tool. If you want to help me improve the code, let me know. I would love to have some help haha.

Where to find me!

@berry_sauvage on Instagram, Discord and Youtube.
https://linktr.ee/berry_sauvage
Also available on itch.io !

Credits

Code and Pixel Art by Berry’ (me).

P#147030 2024-04-20 19:15 ( Edited 2024-04-21 09:12)
[ :: Read More :: ]

Cart #speedemup-1 | 2024-04-20 | Embed ▽ | No License
1


new version

P#147026 2024-04-20 18:04
[ :: Read More :: ]

Cart #fade_code-0 | 2024-04-20 | Embed ▽ | License: CC4-BY-NC-SA
8

The code in fade.lua will perform a basic fade to your specified color in rgb,
for the number of frames you specify. It defaults to black for 20 frames.

This cart also doubles as a Hyper Light Drifter Wallpaper. :D

P#147018 2024-04-20 15:23
[ :: Read More :: ]

Descender

Cart #descender-0 | 2024-05-05 | Code ▽ | Embed ▽ | No License
2

Story

Descender is a pico-rogue adventure into the Pico Ruins, the entrance of which was found underneath the ground behind a small house in a small village.

Rumors have been stirring in the town inn of great treasures found within. The ruins are calling your name!

Controls

D-Pad

Use the d-pad to move around and navigate menus.

Start Button

The Start button will enable the Pause Menu. Here you can disable the music amongst other Pico-8 options.

X Button

Hold the X button to ready an arrow. Push a direction on the d-pad while holding the button to adjust your aim. Release to fire the arrow.

Hold the X button and simultaneously press the O button to skip a turn and force the enemy to move.

The X button is also used to leave menus.

O Button

Press O to open your inventory.

Press O to choose an item from your inventory.

About

Descender is a personal experiment of mine to try my hand at game development again after many years of not trying. I did the programming, art, sound fx, and music for the game. The original Rogue and the Mystery Dungeon games were my inspirations for the gameplay. The music tracks were quick little compositions I made on my piano and notated into the Pico-8 editor.

I am running out of tokens, fast, so progress is slowing down. I will try to continue to optimize tokens and work on the following milestones:

  • Improved Ending
  • Updated Projectile System
  • More Music
  • More Floors, Items, & Monsters
  • Improved Inventory
  • Refined Gameplay Balance

Thank you for playing!
fdisk

P#146992 2024-04-20 15:22 ( Edited 2024-05-05 14:31)
[ :: Read More :: ]

Not much idea what I've created here as still very much a noob at all this coding stuff.

Cart #greedygob-0 | 2024-04-20 | Embed ▽ | No License
1

P#147014 2024-04-20 14:58
View Older Posts